1. Field of the Invention
The present invention relates generally to computer-implemented graphics systems, and in particular, to a method, apparatus, and article of manufacture for extrapolating behavioral constraints and placing objects in a computer-implemented graphics system.
2. Description of the Related Art
Computer-implemented graphics systems have been widely used by designers, illustrators, drafters, and engineers for a number of years. In such graphics systems, users often move, manipulate, and place objects (e.g., lines, shapes, points, etc.) in a drawing with respect to other objects. In some instances, the graphics system may highlight or suggest where to place one object with respect to another object. Most graphics systems provide placement suggestions for objects in two-dimensional (2D) drawings and derive the suggestions from the mathematical definitions of the objects. However, due to the mathematical complexities of objects in three-dimensional (3D) space, prior art graphics systems do not work or are inefficient when placing objects in a 3D drawing.
Some graphics systems provide a mode of interaction where the system automatically suggests geometrically interesting points near the cursor for consideration in placing an object with respect to another object. However, these systems work best in two dimensions where there is little ambiguity regarding the true location of the xe2x80x9cinteresting pointxe2x80x9d displayed.
One prior art example of placing an object in a 2D drawing with respect to another object is illustrated in FIG. 1. In FIG. 1, sail object 100 needs to be placed on mast object 104. Sail object 100 is a triangle and mast object 104 is a straight line, both of which can be simply represented mathematically. In placing sail object 100 on mast 104, edge 106 merely needs to be centered on mast object 104. Additionally, text object 108 needs to be placed in object 102. To place text object 108 in object 102, text object 108 is rotated so that it is parallel with the top edge of object 102. After rotation, text object 108 can be placed utilizing a point defined in the text string (e.g., the lower left, the upper middle, the upper right, etc.). For example, after rotation, the text may be placed at a point defined by the upper right of the text string (e.g., the xe2x80x9cTxe2x80x9d) and the upper right corner of object 102.
When placing objects in a 3D drawing, there are complicating factors due to the mathematical complexity of the shapes, planes, solids, and surfaces that comprise object definitions. Most 3D objects have too much mathematical definition to infer any presumptive relationships to assist in placement operations. Also, there are currently millions of 3D objects that have already been defined digitally. However, these definitions do not include or provide for placement/behavioral constraints (i.e., limitations as to how an object may behave, interact, or be placed with respect to another object).
Consequently, there is a need in the art for improved techniques for extrapolating behavioral constraints and defining the placement of objects in a 3D drawing.
A method, apparatus, and system for extrapolating behavioral constraints and placing objects. In graphics systems, objects are manipulated and placed by users. Some graphics systems aid the user in placing objects by providing interesting points or interesting geometric data for the objects. Additionally, objects may have manipulation or behavioral constraints that limit the placement of the object with respect to other objects. Such behavioral constraints may be associated with the relevant geometric data and may be created by the interaction between two objects. Objects may be mathematically complex with a large number of interesting geometric data and behavioral constraints. Such complexity results in a decreased processing speed for computing suggestions and completing the manipulation and placement of the objects.
One or more embodiments of the invention transform objects to increase efficiency. Such transformation includes simplifying or filtering objects. Both simplification and filtering provide a replacement or temporary object that is not as mathematically complex with fewer interesting geometric data and behavioral constraints. The temporary object can be used to provide suggestions and interact with other objects.
The simplification of an object evaluates the definition of the geometry of an object to determine a simpler geometry that is not as complex. The filtering of an object filters the object based on varying criteria. For example, the filtering may be based on one or more specific types of geometric data such as plane, line, point, etc. Alternatively, the object may be filtered based on a distance criteria such as closest, farthest, above, below, etc.
Once an object has been simplified and/or filtered, an instance of the simplified/filtered object (referred to as a xe2x80x9ctemporaryxe2x80x9d object) is obtained along with relevant attributes, properties, geometric data, and behavioral constraints. The temporary object may be manipulated and utilized to interact with other objects by the user. Once the temporary object has been appropriately placed by the user, the original object replaces the temporary object.